package com.cpsoft.androiddemo.glide;

import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import com.cpsoft.androiddemo.R;
import com.bumptech.glide.GenericRequestBuilder;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;


public class GlideActivity extends AppCompatActivity {

    private static final int REQUEST_CONTACT = 1;


    private ImageView imageViewPhoto;

    private WebView webView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_glide);

        imageViewPhoto = (ImageView)findViewById(R.id.image_photo);

        webView = (WebView)findViewById(R.id.webview);

/*        Glide.with()使用

        with(Context context). 使用Application上下文，Glide请求将不受Activity/Fragment生命周期控制。
        with(Activity activity).使用Activity作为上下文，Glide的请求会受到Activity生命周期控制。
        with(FragmentActivity activity).Glide的请求会受到FragmentActivity生命周期控制。
        with(android.app.Fragment fragment).Glide的请求会受到Fragment 生命周期控制。
        with(android.support.v4.app.Fragment fragment).Glide的请求会受到Fragment生命周期控制。*/

        Glide.with(this)
                .load("http://inthecheesefactory.com/uploads/source/nestedfragment/fragments.png")
                .skipMemoryCache(true) //禁止内存缓存  false 则是可以使用缓存
                .into(imageViewPhoto);

        //清除内存缓存： 必须在UI线程中调用
        Glide.get(this).clearMemory();



    /*    requestManager.load()使用

        Glide基本可以load任何可以拿到的媒体资源，如：
        load SD卡资源：load("file://"+ Environment.getExternalStorageDirectory().getPath()+"/test.jpg")
        load assets资源：load("file:///android_asset/f003.gif")
        load raw资源：load("Android.resource://com.frank.glide/raw/raw_1")或load("android.resource://com.frank.glide/raw/"+R.raw.raw_1)
        load drawable资源：load("android.resource://com.frank.glide/drawable/news")或load("android.resource://com.frank.glide/drawable/"+R.drawable.news)
        load ContentProvider资源：load("content://media/external/images/media/139469")
        load http资源：load("http://img.my.csdn.net/uploads/201508/05/1438760757_3588.jpg")
        load https资源：load("https://img.alicdn.com/tps/TB1uyhoMpXXXXcLXVXXXXXXXXXX-476-538.jpg_240x5000q50.jpg_.webp")
        当然，load不限于String类型，还可以：
        load(Uri uri)，load(File file)，load(Integer resourceId)，load(URL url)，load(byte[] model)，load(T model)，loadFromMediaStore(Uri uri)。
        load的资源也可以是本地视频，如果想要load网络视频或更高级的操作可以使用VideoView等其它控件完成。
        而且可以使用自己的ModelLoader进行资源加载：
        using(ModelLoader<A, T> modelLoader, Class<T> dataClass)，using(final StreamModelLoader<T> modelLoader)，using(StreamByteArrayLoader modelLoader)，using(final FileDescriptorModelLoader<T> modelLoader)。
        返回GenericRequestBuilder实例。*/

        webView.loadUrl("http://blog.csdn.net/shangmingchao/article/details/51125554/");
        webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub
                //返回值是true的时候控制去WebView打开，为false调用系统浏览器或第三方浏览器
                view.loadUrl(url);
                return true;
            }
        });
    }



}


